Position and time determination under weak signal conditions

ABSTRACT

Described herein are systems and methods that are capable of determining receiver position and system time under weak signal conditions. When the receiver is unable to accurately determine the satellite signal travel time, e.g., due to weak signal reception or some other condition, the receiver can still estimate the pseudo-range for the satellite based on an initial receiver position and system time. In this case, the system and methods described herein provide the necessary initial receiver position and system time with enough accuracy to estimate the pseudo-range, even under weak signal conditions. The receiver can then use the estimated pseudo-range to determine a more accurate receiver position.

FIELD OF THE INVENTION

The present invention relates to position and time determination in asatellite based navigation receiver, e.g., GPS receiver, under weaksignal conditions.

BACKGROUND OF THE INVENTION

The global positioning system (GPS) is a satellite-basedradio-navigation system built and operated by the United StatesDepartment of Defense. The system uses twenty-four satellites orbitingthe earth at an altitude of about 11,000 miles with a period of abouttwelve hours. Some additional satellites may be present as spares. Thesesatellites are placed in six different orbits such that at any time aminimum of six satellites are visible at any location on the surface ofthe earth except in the polar region. Each satellite transmits a timeand position signal referenced to an atomic clock. A typical GPSreceiver locks onto this signal and extracts the data contained in it.Using signals from a sufficient number of satellites, a GPS receiver cancalculate its position, velocity, altitude, and time.

Data is modulated to the GPS signal, in which each data bit spans 20milliseconds. This data contains ephemeris that provides satellite orbitinformation and time information to help the receiver determine thesystem time. Under weak signal conditions, it is still possible for thereceiver to acquire and track the GPS signal with a longer non-coherentintegration time or other method. However, due to the low signal tonoise ratio, the error rate of the decoded GPS broadcast data will betoo high making it impossible to determine the signal transmit time.Under this condition, the traditional position calculation method cannot be applied.

Some prior art references have been published that deal with the aboveconditions. The central concept of these methods is adding anothervariable as system time to compensate for the uncertainty of the signaltransmit time. An additional observation measurement is required to helpto solve the additional variable. As a result measurements of at leastfive satellites are needed to calculate the final position.

When the signal transmit time can not be determined, it is impossible tocalculate the pseudo-range with the traditional method of multiplyingthe speed of light with the difference between the signal transmit timeand receive time. Because only the C/A code is tracked, only asub-millisecond fraction of the transmit time can be determined. As aresult, the calculated pseudo-range will have 300 km ambiguity, which isthe distance the signal travels in one millisecond.

Given an estimated pseudo-range of one satellite ρ_(i), the pseudo-rangecan be divided into a millisecond part and a sub-millisecond part,ρ_(i)=ρ_(i) ⁽¹⁾+ρ_(i) ⁽²⁾, where

${\rho_{i}^{(1)} = {\Lambda \times \left\lfloor \frac{\rho_{i}}{\Lambda} \right\rfloor}},{\rho_{i}^{(2)} = {\rho_{i} - {\rho_{i}^{(1)}.}}}$

The symbol └ ┘ indicates to take the integer value of the division. Thesymbol Λ is the distance light travels in 1 ms and is about 300 km.Under weak signal conditions, only the sub-millisecond part ρ_(i) ⁽²⁾can be obtained. The millisecond part ρ_(i) ⁽¹⁾ can be estimated andused to calculate the pseudo-range ρ_(i) by carrying out the followingsteps:

Make an estimation of the GPS time of signal arrival T_(u).

Estimate the travel time of the signal t_(f). If the travel time can notbe estimated, use 70 ms as an approximation for t_(f).

Calculate the satellite position at time T_(u)−t_(f) as {right arrowover (s)}_(i)(T_(u)−t_(f)), where {right arrow over (s)}_(i)( ) is thesatellite position as a function of time, which may be derived fromephemeris downloaded onto the receiver.

Use the estimated user position U to calculate the millisecond part ofthe pseudorange as:

${\rho_{i}^{(1)} = {\Lambda \times \left\lfloor \frac{{{{{\overset{\rightharpoonup}{s}}_{i}\left( {T_{u} - t_{f}} \right)} - \overset{\rightharpoonup}{u}}} + {ct}_{u}}{\Lambda} \right\rfloor}},$

where t_(u) is the receiver clock offset.

Sum the parts ρ_(i) ⁽¹⁾ and ρ_(i) ⁽²⁾ together to get ρ_(i)=ρ_(i)⁽¹⁾+ρ_(i) ⁽²⁾.

Although a precise determination of the receiver clock offset t_(u)should include the same information as a precise determination of whatis here called the GPS time at arrival T_(u) (in the sense that if youknow t_(u) precisely, you should know T_(u)), the GPS time at arrival asused here likely does not convey the same information as the receiverclock offset. Thus, the GPS time at arrival is treated as independent ofthe receiver clock offset. By introducing the GPS time at arrival T_(u)as one additional degree of freedom for the solution of the PVTequation, at least five satellites need to be tracked to solve the PVT.The equations are shown by the following:

At time T_(u)−t_(f) the position of the i^(th) satellite is {right arrowover (s)}_(i), and the speed of the i^(th) satellite is {right arrowover (v)}_(i), where i is used for a satellite index.

The initial receiver position is {right arrow over (û)} and initialclock offset is {circumflex over (t)}_(u).

An initial range {circumflex over (ρ)}_(i) can be written as {circumflexover (ρ)}_(i)={circumflex over (r)}_(i)+c{circumflex over (t)}_(u),where {circumflex over (r)}_(i)=∥{right arrow over (s)}_(i)−{right arrowover (û)}∥. The unit vector of {circumflex over (r)}_(i) is

${{\overset{\rightharpoonup}{a}}_{i} = {\frac{{\overset{\rightharpoonup}{s}}_{i} - \overset{\hat{\rightharpoonup}}{u}}{{\hat{r}}_{i}} = {{a_{xi} \cdot \overset{\rightharpoonup}{x}} + {a_{yi} \cdot \overset{\rightharpoonup}{y}} + {a_{zi} \cdot \overset{\rightharpoonup}{z}}}}},$

in which {right arrow over (x)}, {right arrow over (y)} and {right arrowover (z)} correspond to the x, y and z axis. The difference between theinitial range {circumflex over (ρ)}_(i) and the range ρ_(i) to be solvedis Δρ_(i)={circumflex over (ρ)}−ρ_(i)={circumflex over(r)}_(i)+c{circumflex over (t)}_(u)−ρ_(i). The solution using fivesatellites can be given by:

${\Delta \; \overset{\rightharpoonup}{\rho}} = \begin{bmatrix}{\Delta\rho}_{1} \\{\Delta\rho}_{2} \\{\Delta\rho}_{3} \\{\Delta\rho}_{4} \\{\Delta\rho}_{5}\end{bmatrix}$ $H = {{\begin{bmatrix}a_{x\; 1} & a_{y\; 1} & a_{z\; 1} & {{\overset{\rightharpoonup}{a}}_{1} \cdot {\overset{\rightharpoonup}{v}}_{1}} & 1 \\a_{x\; 2} & a_{y\; 2} & a_{z\; 2} & {{\overset{\rightharpoonup}{a}}_{2} \cdot {\overset{\rightharpoonup}{v}}_{2}} & 1 \\a_{x\; 3} & a_{y\; 3} & a_{z\; 3} & {{\overset{\rightharpoonup}{a}}_{3} \cdot {\overset{\rightharpoonup}{v}}_{3}} & 1 \\a_{x\; 4} & a_{y\; 4} & a_{z\; 4} & {{\overset{\rightharpoonup}{a}}_{4} \cdot {\overset{\rightharpoonup}{v}}_{4}} & 1 \\a_{x\; 5} & a_{y\; 5} & a_{z\; 5} & {{\overset{\rightharpoonup}{a}}_{5} \cdot {\overset{\rightharpoonup}{v}}_{5}} & 1\end{bmatrix}\mspace{14mu} {and}\mspace{20mu} \Delta \; \overset{\rightharpoonup}{x}} = \begin{bmatrix}{\Delta \; x_{u}} \\{\Delta \; y_{u}} \\{\Delta \; z_{u}} \\{\Delta \; T_{u}} \\{- {ct}_{u}}\end{bmatrix}}$

which gives Δ{right arrow over (ρ)}=HΔ{right arrow over (x)}.

With more than five satellites, we can use least square method to getthe solution.

Because of the ambiguity of Λ in the pseudo-range calculation, theestimated user position and time should not be too far away from thetrue value, otherwise, the millisecond part of ρ_(i) ⁽¹⁾ will have andincorrect value and result in an incorrect receiver positioncalculation. This limitation gives a restriction on the initial positionand initial time of

${{\kappa \cdot \left( {T_{u} - {\hat{T}}_{u}} \right)} + {{\overset{\rightharpoonup}{u} - \overset{\hat{\rightharpoonup}}{u}}}} < {\frac{\Lambda}{2}.}$

Here T_(u) and {right arrow over (u)} are the true signal arrive timeand receiver position respectively, {circumflex over (T)}_(u) and {rightarrow over (û)} are estimated initial signal arrive time and receiverposition respectively, and κ is the maximum possible pseudo-range changerate (about 710 m/s).

If the above condition can not be met, several methods can be applied tohelp remove the ambiguity of the pseudo-range. One of these methods isto introduce one or more additional observation measurements so thenumber of equations in Δ{right arrow over (ρ)}=HΔ{right arrow over (x)}is more than the number of variables. When using the least square methodto solve the equations, we can get a residual of the solution. A grid isapplied to the possible area covering the possible initial position.With all the possible initial positions and signal arrival times, theresidual will reach the global minimum with the correct combination.These combinations should cover the span of all possible estimatedsignal arrival times and the area around the surface of the earth thatcan see all the satellites. Because this algorithm searches all thepossible solutions and finds the minimum one, the computation time issignificant and performing a position fix on an embedded computingsystem in a limited time is not practical.

Several publications discuss the above methods. A method using fivesatellites to perform the position fix is disclosed in U.S. Pat. No.6,215,442 B1, and U.S. Pat. No. 6,437,694 B1 discloses a method usingKalman filter. Methods using six or more satellites that find theminimum residual result as the final solution are described in U.S. Pat.No. 6,417,801 B1 and U.S. Pat. No. 6,734,821 B2. In U.S. Pat. No.6,865,478 B2, a method is given to reduce the possible initial positionsto reduce the computation time. U.S. Pat. No. 6,670,916 gives a heightconstraint condition so that four satellites can be used to compute theposition.

When the initial position and time is unknown or is less accurate suchthat the condition of

${{\kappa \cdot \left( {T_{u} - {\hat{T}}_{u}} \right)} + {{\overset{\rightharpoonup}{u} - \overset{\hat{\rightharpoonup}}{u}}}} < \frac{\Lambda}{2}$

can not be met, none of above methods can be applied to calculatereceiver position within a reasonable computation time especially forembedded electrical devices.

Accordingly, there is a need for determining an initial position andtime that is accurate enough to be used as a starting point to calculatethe receiver position, and that can be performed within a reasonablecomputation time. This would provide relatively accurate initialposition and time to meet the requirement of

${{\kappa \cdot \left( {T_{u} - {\hat{T}}_{u}} \right)} + {{\overset{\rightharpoonup}{u} - \overset{\hat{\rightharpoonup}}{u}}}} < \frac{\Lambda}{2}$

to perform further position calculations.

SUMMARY

Described herein are systems and methods that are capable of determiningreceiver position and system time under weak signal conditions.

When the receiver is unable to accurately determine the satellite signaltravel time, e.g., due to weak signal reception or some other condition,the receiver can still estimate the pseudo-range for the satellite basedon an initial receiver position and system time. In this case, thesystem and methods described herein provide the necessary initialreceiver position and system time with enough accuracy to estimate thepseudo-range, even under weak signal conditions. The receiver can thenuse the estimated pseudo-range to determine a more accurate receiverposition. Preferably, the systems and methods described herein requirelow computational load, allowing the initial position and time to becomputed in real time and/or on embedded systems.

The above and other advantages of embodiments of this invention will beapparent from the following more detailed description when taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplary GPS receiver.

FIG. 2 is a flow diagram illustrating a method for determining receiverposition under weak signal conditions.

DETAILED DESCRIPTION

FIG. 1 illustrates a receiver according to an exemplary embodiment ofthe invention. An RF front-end 100 processes the RF signal received atthe antenna (not shown). Operations of a conversional RF front-end 100include amplification, down-conversion, and analog-to-digitalconversion. The RF front end 100 outputs an intermediate frequency (IF)signal 101 to the baseband section of the receiver. The IF input ismultiplied in IF mixer 103 in-phase and quad-phase with a localfrequency signal generated by a direct digital frequency synthesizer(DDFS) 102. This mixing involves multiplying the IF input signal 101 bythe local DDFS frequency which generates the in-phase and quad-phasecomponent 104. The DDFS 102 is driven by a carrier numericallycontrolled oscillator (NCO) 105. In addition, carrier NCO 105 receivesphase and frequency corrections from a processor 110. Because of thiscorrection, the DDFS frequency and phase is almost the same as that ofthe IF input signal 101. Thus the I and Q signals produced by the IFmixers 103 are at near zero carrier frequency after being low-passfiltered to remove the high frequency components which are at twice theIF frequency band.

The I and Q components 104 are correlated in correlators 106 with alocally-generated PRN sequence generated by a PN generator 107. ThePRN-sequence corresponds to the satellite whose signal is beingprocessed by the baseband section at that time. The PN sequencegenerator is driven by code NCO 108. The local code frequency is madeequal to the code rate of I and Q paths by corrective feedback from theprocessor 110 to the code NCO 108. In addition, the processor 110controls the code NCO 108 to set the phase and frequency of localgenerated PN code. The correlator outputs are then sent to the processor110 at every millisecond interval. The processor 110 is preferably adigital signal processor (DSP) or a general purpose CPU suitable forhigh speed arithmetic computations. Subsequent processing of the signalstakes place in the processor 110, which then sends the feedback tocarrier NCO 105 and code NCO 108. Also, the result of the processor issend to CPU 111, which can be the same one as the processor or adifferent processor running in parallel. The CPU 111 will derivepseudo-ranges and Doppler measurements using the information of thesignal tracking result and then calculate the receiver position. Memory112, which can include volatile and/or non-volatile memory, is used tostore program and data. The ephemeris for the satellites are also storedin the memory 112 or obtained from other sources such as a GSM network.

According to the exemplary receiver illustrated in FIG. 1, when the GPSsignal is acquired and tracked, the ranging code is synchronized withthe local generated code, and the local oscillator tracks the signalcarrier, which enables the receiver to measure the Doppler of thesatellite. The Doppler measurement for an i^(th) satellite can beexpressed as:

$\begin{matrix}{{f_{di} \cdot L} = {{\left\lbrack {{{\overset{\rightharpoonup}{v}}_{i}\left( {T_{u} - t_{f}} \right)} - {\overset{\rightharpoonup}{v}}_{u}} \right\rbrack \cdot \frac{\overset{\rightharpoonup}{u} - {{\overset{\rightharpoonup}{s}}_{i}\left( {T_{u} - t_{f}} \right)}}{{\overset{\rightharpoonup}{u} - {{\overset{\rightharpoonup}{s}}_{i}\left( {T_{u} - t_{f}} \right)}}}} - {c\; {\overset{.}{t}}_{u}}}} & (1)\end{matrix}$

where f_(di) is the Doppler frequency, L is the wavelength of the L1signal, {right arrow over (s)}_(i) and {right arrow over (v)}_(i) arethe position and speed of the i^(th) satellite at time T_(u)−t_(f)respectively, and {right arrow over (u)} and {right arrow over (v)}_(u)are receiver position and speed respectively. The quantity f_(di)·Lexpresses the Doppler in terms of a rate change of the distance betweenthe satellite and receiver with time. The quantity −c{dot over (t)}_(u)takes into account receiver clock drift. In many cases, the receiver isnot moving at a very high speed. Thus, some approximations can beapplied such as ignoring the speed of the receiver, i.e., assuming{right arrow over (v)}_(u) is zero. This approximation is suitable ifthe purpose of this method is not to provide very accurate receiverposition, but receiver position that is accurate enough to be used as aninitial position or starting point in calculations for estimating thepseudo-range. The time of signal travel can also be ignored because theuncertainty of T_(u) is much more than t_(f). With these approximation,equation (1) can be simplified to the following:

$\begin{matrix}{V_{i} = {{f_{di} \cdot L} = {{{\overset{\overset{\rightharpoonup}{.}}{s}\left( T_{u} \right)} \cdot \frac{\overset{\rightharpoonup}{u} - {{\overset{\rightharpoonup}{s}}_{i}\left( T_{u} \right)}}{{\overset{\rightharpoonup}{u} - {{\overset{\rightharpoonup}{s}}_{i}\left( T_{u} \right)}}}} - {c\; {\overset{.}{t}}_{u}}}}} & (2)\end{matrix}$

Here {dot over ({right arrow over (s)}_(i)(T_(u)) is the derivative ofposition {right arrow over (s)}_(i)(T_(u)) and is used as the speed ofthe satellite at time T_(u). The derivate of the satellite position canbe calculated using a differential value (compute satellite position atdifferent times and divide by the time difference) or a first derivativeequation of the equation used to calculate position.

The receiver position {right arrow over (u)} comprises three dimensioncoordinate components x, y and z. Including two additional variables,receiver time as T_(u) and receiver local oscillator frequency bias as{dot over (t)}_(u), equation (2) can be linearized as

$\begin{matrix}{{V_{i}\left( {{\hat{x} + {\Delta \; x}},{\hat{y} + {\Delta \; y}},{\hat{z} + {\Delta \; z}},{{\hat{T}}_{u} + {\Delta \; T_{u}}},{{\overset{\hat{.}}{t}}_{u} + {\Delta \; {\overset{.}{t}}_{u}}}} \right)} = {{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)} + {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial\hat{x}}\Delta \; x} + {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial\hat{y}}\Delta \; y} + {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial\hat{z}}\Delta \; z} + {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial{\hat{T}}_{u}}\Delta \; {\hat{T}}_{u}} + {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial{\overset{\hat{.}}{t}}_{u}}\Delta \; {\overset{\hat{.}}{t}}_{u}}}} & (3)\end{matrix}$

where {circumflex over (x)}, ŷ, {circumflex over (z)}, {circumflex over(T)}_(u) and {dot over ({circumflex over (t)}_(u) are initial values ofvariables x, y, z, T_(u), and {dot over (t)}_(u) respectively. Thesymbol Δ for a variable indicates the difference between the initialvalue and the value to be solved. The above linearization is determinedby taking a Taylor series expansion of V_(i) and keeping the first orderpartial derivative of the expansion.

Some intermediate variables and equations are listed below to simplifythe final result.

The equations {circumflex over (r)}_(xi)={circumflex over(x)}−x_(si)({circumflex over (T)}_(u)),{circumflex over(r)}_(yi)=(ŷ−y_(si)({circumflex over (T)}_(u))),{circumflex over(r)}_(zi)=({circumflex over (z)}−z_(si)({circumflex over (T)}_(u)))represent the difference of the receiver and the i^(th) satellitecoordinates in three dimensions based on the initial values.

The equation {circumflex over (r)}_(i)=∥{right arrow over (û)}−{rightarrow over (s)}_(i)({circumflex over (T)}_(u))∥=√{square root over({circumflex over (r)}_(xi) ²+{circumflex over (r)}_(yi) ²+{circumflexover (r)}_(zi) ²)} is the geometry distance from the receiver to thei^(th) satellite based on the initial values.

The equation

${\hat{v}}_{i} = \frac{{{\hat{r}}_{xi} \cdot {{\overset{.}{x}}_{si}\left( {\hat{T}}_{u} \right)}} + {{\hat{r}}_{yi} \cdot {{\overset{.}{y}}_{si}\left( {\hat{T}}_{u} \right)}} + {{\hat{r}}_{zi} \cdot {{\overset{.}{z}}_{si}\left( {\hat{T}}_{u} \right)}}}{{\hat{r}}_{i}}$

is radial speed or range change rate of the i^(th) satellite based onthe initial values.

The equation ΔV_(i)=f_(di)·L−V_(i)({circumflex over (x)},ŷ,{circumflexover (z)},{circumflex over (T)}_(u),{dot over ({circumflex over(t)}_(u)) is the difference of the measured Doppler and the calculatedDoppler based on the initial values.

Based on the above equations, the partial derivatives in equation (3)can be given by:

$\begin{matrix}{\mspace{79mu} {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial\hat{x}} = {\frac{{\hat{f}}_{xi}}{{\hat{r}}_{i}} = \frac{{{\overset{.}{x}}_{si}\left( {\hat{T}}_{u} \right)} - {{\hat{v}}_{i} \cdot {{\hat{r}}_{xi}/{\hat{r}}_{i}}}}{{\hat{r}}_{i}}}}} & (4) \\{\mspace{79mu} {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial\hat{y}} = {\frac{{\hat{f}}_{yi}}{{\hat{r}}_{i}} = \frac{{{\overset{.}{y}}_{si}\left( {\hat{T}}_{u} \right)} - {{\hat{v}}_{i} \cdot {{\hat{r}}_{yi}/{\hat{r}}_{i}}}}{{\hat{r}}_{i}}}}} & (5) \\{\mspace{79mu} {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial\hat{x}} = {\frac{{\hat{f}}_{zi}}{{\hat{r}}_{i}} = \frac{{{\overset{.}{z}}_{si}\left( {\hat{T}}_{u} \right)} - {{\hat{v}}_{i} \cdot {{\hat{r}}_{zi}/{\hat{r}}_{i}}}}{{\hat{r}}_{i}}}}} & (6) \\{\mspace{79mu} {{\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial{\hat{T}}_{u}} = \frac{{\hat{g}}_{i}}{{\hat{r}}_{i}}}{{\hat{g}}_{i} = {{{\hat{r}}_{xi} \cdot {{\overset{..}{x}}_{si}\left( {\hat{T}}_{u} \right)}} + {{\hat{r}}_{yi} \cdot {{\overset{..}{y}}_{si}\left( {\hat{T}}_{u} \right)}} + {{\hat{r}}_{zi} \cdot {{\overset{..}{z}}_{si}\left( {\hat{T}}_{u} \right)}} - {{\overset{.}{x}}_{si}^{2}\left( {\hat{T}}_{u} \right)} - {{\overset{.}{y}}_{si}^{2}\left( {\hat{T}}_{u} \right)} - {{\overset{.}{z}}_{si}^{2}\left( {\hat{T}}_{u} \right)} + {\hat{v}}_{i}^{2}}}}} & (7) \\{\mspace{79mu} {\frac{\partial{V_{i}\left( {\hat{x},\hat{y},\hat{z},{\hat{T}}_{u},{\overset{\hat{.}}{t}}_{u}} \right)}}{\partial{\overset{\hat{.}}{t}}_{u}} = {- c}}} & (8)\end{matrix}$

For five satellites, we can calculate the following matrixes:

${V = \begin{bmatrix}{\Delta \; {V_{1} \cdot {\hat{r}}_{1}}} \\{\Delta \; {V_{2} \cdot {\hat{r}}_{2}}} \\{\Delta \; {V_{3} \cdot {\hat{r}}_{3}}} \\{\Delta \; {V_{4} \cdot {\hat{r}}_{4}}} \\{\Delta \; {V_{5} \cdot {\hat{r}}_{5}}}\end{bmatrix}},{H = \begin{bmatrix}{\hat{f}}_{x\; 1} & {\hat{f}}_{y\; 1} & {\hat{f}}_{z\; 1} & {\hat{g}}_{1} & {\hat{r}}_{1} \\{\hat{f}}_{x\; 2} & {\hat{f}}_{y\; 2} & {\hat{f}}_{z\; 2} & {\hat{g}}_{2} & {\hat{r}}_{2} \\{\hat{f}}_{x\; 3} & {\hat{f}}_{y\; 3} & {\hat{f}}_{z\; 3} & {\hat{g}}_{3} & {\hat{r}}_{3} \\{\hat{f}}_{x\; 4} & {\hat{f}}_{y\; 4} & {\hat{f}}_{z\; 4} & {\hat{g}}_{4} & {\hat{r}}_{4} \\{\hat{f}}_{x\; 5} & {\hat{f}}_{y\; 5} & {\hat{f}}_{z\; 5} & {\hat{g}}_{5} & {\hat{r}}_{5}\end{bmatrix}},{{\Delta \; x} = \begin{bmatrix}{\Delta \; x} \\{\Delta \; y} \\{\Delta \; z} \\{\Delta \; {\overset{.}{T}}_{u}} \\{{- c}\; \Delta \; {\overset{.}{t}}_{u}}\end{bmatrix}}$

These matrixes can be used in the following equation to solve for thereceiver position and system time:

V=H·Δx  (9)

The above calculation can be repeated over several iterations until theresult converges. In this case, the calculated results x, y, z, T, and{dot over (t)}_(u) of one iteration of the calculation are used as theinitial values in the next iteration of the calculation and so on. Thecalculation is repeated until the calculated results are close enough totheir corresponding initial values, e.g., such that the results areaccurate enough to be used as starting points for estimating thepseudo-range. The final calculated position and time for each satellitemay then be used as the initial position and time (starting points) forestimating the pseudo-range for the satellite, e.g., using the methodsdescribed in the background.

For the case that there are more than five satellites, we use can usethe least square equation Δx=(H^(T)H)⁻¹H^(T)V.

Initial values for {circumflex over (x)}, ŷ, {circumflex over (z)},{circumflex over (T)}_(u) and {dot over ({circumflex over (t)}_(u) canbe based on approximations and the convergence range can be very wide. Areasonable guess of the system time for the first iteration is to usethe time-of-ephemeris (toe) of ephemeris stored in memory or the realtime clock (RTC) time of the device. The initial receiver position forthe first iteration can be a previous known receiver position, e.g., apreviously computed position stored in memory. If this position is notavailable, another method is to calculate the geometrical center of theacquired satellites at the selected time, and use the projection pointof this geometrical center on the earth surface as the position. Thevalue of {dot over ({circumflex over (t)}_(u) for the first iterationcan be zero.

The above computations may be performed in firmware on the CPU 111and/or processor 110, or dedicated hardware.

FIG. 2 shows the overall steps for calculating the final receiverposition according to exemplary embodiment, In the first step 200, atleast five satellites are acquired. In step 201, Doppler measurement ofeach acquired satellite is taken. In step 202, receiver position andtime are computed using the methods described above. In step 203, thecomputed receiver position and time for each satellite are used asstarting points to estimate the pseudo-range for the satellite. In step204, the sub-millisecond part is applied to the estimated pseudo-rangeto determine the final pseudo-range for the satellite. Thesub-millisecond part of the pseudo-range can be derived from the localcode sequence and code phase. Finally, in step 205, the receiverposition is calculated based on the final pseudo-ranges of thesatellites, which may be displayed to the user and/or stored in memory.

Although the present invention has been described in terms of thepresently preferred embodiments, it is to be understood that thedisclosure is not to be interpreted as limiting. Various alterations andmodifications will no doubt become apparent to those skilled in the artafter having read this disclosure. For example, although the aboveembodiments have been described using the GPS system as an example, thetechniques and methods may be used for other global satellitenavigational systems including GLONASS, Galileo, secondary systems suchas WASS, EGNOS, and MSAS, as well as hybrids of the above systems.Accordingly, it is intended that the appended claims be interpreted ascovering all alterations and modifications as fall within the spirit andscope of the invention.

1. A method of determining position and time in a navigation receiver,comprising: receiving and tracking a signal from a satellite at thereceiver; making a Doppler measurement for the satellite signal; andcomputing the position and time based on the Doppler measurement.
 2. Themethod of claim 1, further comprising using the computed position andtime to estimate a pseudo-range for the satellite.
 3. The method ofclaim 1, wherein the receiver is unable to obtain accurate timeinformation for the satellite signal.
 4. The method of claim 1, furthercomprising receiving and tracking signals from at least five satellites.5. The method of claim 4, further comprising: making a Dopplermeasurement for each of the at least five satellites signals; andcomputing the position and time based on the Doppler measurements forthe at least five satellites.
 6. The method of claim 1, wherein theDoppler measurement is derived from a local oscillator frequency of thereceiver.
 7. The method of claim 1, wherein the position and timecomputation uses five independent variables.
 8. The method of claim 1,wherein the computation of the position and time is performed overseveral iterations.
 9. The method of claim 8, wherein each iteration ofthe computation comprises solving a set of equations with coefficientsderived from partial derivatives of a Doppler equation.
 10. The methodof claim 8, wherein initial values of the position and time are used inthe first iteration of the computation.
 11. The method of claim 10,wherein the initial value of the position comprises a previous positionstored in memory on the receiver.
 12. The method of claim 10, whereinthe initial value of the time is based on a real time clock (RTC) or atime-of-ephemeris of ephemeris.
 13. The method of claim 12, wherein theRTC comprises an external clock.
 14. The method of claim 12, wherein theephemeris is retrieved from memory on the receiver or from an externalsource.
 15. The method of claim 10, further comprising: computing ageometric center of acquired satellites; using a projection point of thegeometric center on the surface of the earth as the initial value of theposition.
 16. The method of claim 1, wherein the receiver comprises aGPS receiver, a GLONASS receiver, a Galileo receiver, or other GNSSsatellite based navigation receiver.
 17. A navigation receiver,comprising: a radio frequency front-end for receiving satellite signals;a baseband section for processing the received satellite signals; and aprocessor coupled to the baseband section, wherein the processor isconfigured to make a Doppler measurement for at least one of thesatellite signals, and compute a position and time based on the Dopplermeasurement.
 18. The receiver of claim 17, wherein the processor isconfigured to use the computed position and time to estimate apseudo-range for the satellite.
 19. The receiver of claim 17, whereinthe receiver is unable to obtain accurate time information for thesatellite signal.
 20. The receiver of claim 17, wherein the processor isconfigured to receive and track signals from at least five satellites.21. The receiver of claim 20, wherein the processor is configured tomake a Doppler measurement for each of the at least five satellitessignals, and compute the position and time based on the Dopplermeasurements for the at least five satellites.
 22. The receiver of claim21, wherein the processors derives the Doppler measurement from a localoscillator frequency of the receiver.
 23. The receiver of claim 17,wherein the position and time computation uses five independentvariables.
 24. The receiver of claim 17, wherein the processor performsthe computation of the position and time over several iterations. 25.The receiver of claim 24, wherein each iteration of the computationcomprises solving a set of equations with coefficients derived frompartial derivatives of a Doppler equation.
 26. The receiver of claim 24,wherein the processor uses initial values of the position and time inthe first iteration of the computation.
 27. The receiver of claim 26,wherein the initial value of the position comprises a previous positionstored in memory on the receiver.
 28. The receiver of claim 26, whereinthe initial value of the time is based on a real time clock (RTC) or atime-of-ephemeris of ephemeris.
 29. The receiver of claim 28, whereinthe RTC comprises an external clock.
 30. The receiver of claim 28,wherein the ephemeris is retrieved from memory on the receiver or froman external source.
 31. The receiver of claim 26, wherein the processorcomputes a geometric center of acquired satellites, and uses aprojection point of the geometric center on the surface of the earth asthe initial value of the position.
 32. The receiver of claim 17, whereinthe receiver comprises a GPS receiver, a GLONASS receiver, a Galileoreceiver, or other GNSS satellite based navigation receiver.